home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / MacHacksBug / Python 1.5.2c1 / Tools / idle / TODO.txt < prev    next >
Encoding:
Text File  |  2000-06-23  |  4.3 KB  |  140 lines

  1.  
  2. TO DO:
  3.  
  4. - improve debugger:
  5.     - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc.
  6.     - real object browser
  7.     - help on how to use it (a simple help button will do wonders)
  8.     - performance?  (updates of large sets of locals are slow)
  9.     - better integration of "debug module"
  10. - insert the initial current directory into sys.path
  11. - default directory attribute for each window instead of only for windows
  12.   that have an associated filename
  13. - "GO" commands (execute whole buffer, selection, current line
  14.   in the context of the Python Shell window)
  15.   Rename Run -> Load, Go -> Execute
  16. - output from module execution should go to Python Shell (?)
  17. - command expansion from keywords, module contents, other buffers, etc.
  18. - "Recent documents" menu item
  19. - more emacsisms:
  20.     - parentheses matching
  21.     - M-[, M-] to move by paragraphs
  22.     - smart stuff with whitespace around Return
  23.     - filter region?
  24.     - incremental search?
  25.     - ^K should cut to buffer
  26. - restructure state sensitive code to avoid testing flags all the time
  27. - persistent user state (e.g. window and cursor positions, bindings)
  28. - make backups when saving
  29. - check file mtimes at various points
  30. - interface with RCS/CVS/Perforce ???
  31. - status bar?
  32. - better help?
  33. - don't open second class browser on same module
  34.  
  35. Details:
  36.  
  37. - when there's a selection, left/right arrow should go to either
  38.   end of the selection
  39. - ^O (on Unix -- open-line) should honor autoindent
  40. - after paste, show end of pasted text
  41. - on Windows, should turn short filename to long filename (not only in argv!)
  42.   (shouldn't this be done -- or undone -- by ntpath.normpath?)
  43.  
  44. Structural problems:
  45.  
  46. - too much knowledge in FileList about EditorWindow (for example)
  47. - Several occurrences of scrollable listbox with title and certain
  48.   behavior; should create base class to generalize this
  49.  
  50. ======================================================================
  51.  
  52. Jeff Bauer suggests:
  53.  
  54. - The editor should show the current line number.
  55. - Open Module doesn't appear to handle hierarchical packages.
  56. - Class browser should also allow hierarchical packages.
  57. - Open and Open Module could benefit from a history,
  58.   either command line style, or Microsoft recent-file
  59.   style.
  60. - Add a Smalltalk-style inspector  (i.e. Tkinspect)
  61.  
  62. The last suggestion is already a reality, but not yet
  63. integrated into IDLE.  I use a module called inspector.py,
  64. that used to be available from python.org(?)  It no longer
  65. appears to be in the contributed section, and the source
  66. has no author attribution.
  67.  
  68. In any case, the code is useful for visually navigating
  69. an object's attributes, including its container hierarchy.
  70.  
  71.     >>> from inspector import Tkinspect
  72.     >>> Tkinspect(None, myObject)
  73.  
  74. Tkinspect could probably be extended and refined to
  75. integrate better into IDLE.
  76.  
  77. ======================================================================
  78.  
  79. Comparison to PTUI
  80. ------------------
  81.  
  82. + PTUI has a status line
  83.  
  84. + PTUI's help is better (HTML!)
  85.  
  86. + PTUI can attach a shell to any module
  87.  
  88. + PTUI's auto indent is better
  89.   (understands that "if a: # blah, blah" opens a block)
  90.  
  91. + PTUI has more bells and whistles:
  92.   open multiple
  93.   append
  94.   examine
  95.   go
  96.  
  97. ? PTUI's fontify is faster but synchronous (and still too slow);
  98.   does a lousy job if editing affects lines below
  99.  
  100. - PTUI's shell is worse:
  101.   no coloring;
  102.   no editing of multi-line commands;
  103.   ^P seems to permanently remove some text from the buffer
  104.  
  105. - PTUI's undo is worse:
  106.   no redo;
  107.   one char at a time
  108.  
  109. - PTUI's GUI is a tad ugly:
  110.   I don't like the multiple buffers in one window model;
  111.   I don't like the big buttons at the top of the widow
  112.  
  113. - PTUI lacks an integrated debugger
  114.  
  115. - PTUI lacks path and class browsers
  116.  
  117. - PTUI lacks many of IDLE's features:
  118.   - expand word
  119.   - regular expression search
  120.   - search files (grep)
  121.   - (un)tabify
  122.   - center
  123.   - zoom height
  124.  
  125. ======================================================================
  126.  
  127. Notes after trying to run Grail
  128. -------------------------------
  129.  
  130. - Grail does stuff to sys.path based on sys.argv[0]; you must set
  131. sys.argv[0] to something decent first (it is normally set to the path of
  132. the idle script).
  133.  
  134. - Grail must be exec'ed in __main__ because that's imported by some
  135. other parts of Grail.
  136.  
  137. - Grail uses a module called History and so does idle :-(
  138.  
  139. ======================================================================
  140.